application: don't unconditionally unref the GMenuModel in getters
authorCosimo Cecchi <cosimoc@gnome.org>
Wed, 21 Dec 2011 11:20:15 +0000 (12:20 +0100)
committerCosimo Cecchi <cosimoc@gnome.org>
Wed, 21 Dec 2011 11:20:15 +0000 (12:20 +0100)
Both the app-menu and menubar models can be NULL, so we shouldn't
blindly unref them, since g_object_unref() doesn't cope with NULL
pointers.

gtk/gtkapplication.c

index 5f428e241ea381045683ccdda04001d765c4247b..08d0117141447ea393646724495e072621ac5f89 100644 (file)
@@ -792,10 +792,12 @@ gtk_application_set_app_menu (GtkApplication *application,
 GMenuModel *
 gtk_application_get_app_menu (GtkApplication *application)
 {
-  GMenuModel *app_menu;
+  GMenuModel *app_menu = NULL;
 
   g_object_get (application, "app-menu", &app_menu, NULL);
-  g_object_unref (app_menu);
+
+  if (app_menu)
+    g_object_unref (app_menu);
 
   return app_menu;
 }
@@ -840,10 +842,12 @@ gtk_application_set_menubar (GtkApplication *application,
 GMenuModel *
 gtk_application_get_menubar (GtkApplication *application)
 {
-  GMenuModel *menubar;
+  GMenuModel *menubar = NULL;
 
   g_object_get (application, "menubar", &menubar, NULL);
-  g_object_unref (menubar);
+
+  if (menubar)
+    g_object_unref (menubar);
 
   return menubar;
 }